import java.util.Arrays;

/**
 * 2418.按身高排序
 */
public class Exerciser1 {
    public String[] sortPeople(String[] names, int[] heights) {
        // 这个题中的 names和heights 的下标是一一对应的，不能把身高进行排序，那样就找不到对应的名字
        // 可以对其下标进行排序，根据 身高 将其对应的下标进行排序
        // 之后根据排好序的下标去

        // 创建下标数组
        int n = names.length;
        Integer[] index = new Integer[n];
        for(int i = 0;i < n;i++) {
            index[i] = i;
        }

        // 对于数组下标根据 身高进行排序
        Arrays.sort(index,(i, j) -> {
            return heights[j] - heights[i];
        });

        // 根据排完序的下标数组 对names数组进行对应排序
        String[] ret = new String[n];
        for(int i = 0;i < n;i++) {
            ret[i] = names[index[i]];
        }
        return ret;
    }
}
